NLBログ設定時にエラーが発生します。原因を教えてくださいへの回答
NLBログ設定時にエラーが発生します。原因を教えてください。 への回答です。
困っていたこと
NLBのアクセスログを設定したところ、エラーが発生しました。
Access Denied for bucket: bucket-name. Please check S3bucket permission
回答
お客様環境のS3バケットポリシーを確認したところ、NLB用ではなくALBログ用のバケットポリシーが設定されていました。ALBとNLBのアクセスログ用のS3バケットポリシーに違いがありますのでご注意ください。
NLB用のS3バケットポリシー
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::bucket_name/prefix/AWSLogs/123456789012/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::bucket_name" } ] }
参考:https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/network/load-balancer-access-logs.html
ALB用のS3バケットポリシー
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::elb-account-id:root" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::bucket-name/prefix/AWSLogs/your-aws-account-id/*" }, { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::bucket-name/prefix/AWSLogs/your-aws-account-id/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } }, { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::bucket-name" } ] }
ALBとNLBバケットポリシーが異なるため、改めてご確認ください。
以上、千葉がお送りました。